<?php

namespace Agp\CoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Agp\CoreBundle\Entity\Boleto
 *
 * @ORM\Table(name="boleto")
 * @ORM\Entity(repositoryClass="Agp\CoreBundle\Repository\BoletoRepository")
 */
class Boleto
{
    /**
     * @var integer $codBoleto
     *
     * @ORM\Column(name="cod_boleto", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $codBoleto;

    /**
     * @var \DateTime $dtGeracao
     *
     * @ORM\Column(name="dt_geracao", type="datetime", nullable=true)
     */
    protected $dtGeracao;

    /**
     * @var string $arquivo
     *
     * @ORM\Column(name="arquivo", type="blob", nullable=true)
     */
    protected $arquivo;
    
    
    const BOL_ABERTO = 'Aberto';
    const BOL_BAIXADO = 'Baixado';
    /**
     * @var string $situacao
     *
     * @ORM\Column(name="situacao", type="string", length=45)
     */
    protected $situacao;

    /**
     * @var string $nossoNumero
     *
     * @ORM\Column(name="nosso_numero", type="string", length=20, nullable=true)
     */
    protected $nossoNumero;

    /**
     * @var string $linhaDigitavel
     *
     * @ORM\Column(name="linha_digitavel", type="string", length=60, nullable=true)
     */
    protected $linhaDigitavel;
    
    /**
     * @ORM\ManyToOne(targetEntity="ConfigBoleto", cascade={"persist"}, fetch="LAZY")
     * @ORM\JoinColumn(name="cod_config_boleto", referencedColumnName="cod_config_boleto")
     * @var object
     */
    protected $configBoleto;
    
    /**
     * @ORM\Column(name="dt_envio", type="datetime", nullable=true)
     * @var datetime
     */
    protected $dtEnvio;


    public function __construct() {
        $this->situacao = self::BOL_ABERTO;
    }

    /**
     * Get codBoleto
     *
     * @return integer 
     */
    public function getCodBoleto()
    {
        return $this->codBoleto;
    }

    /**
     * Set dtGeracao
     *
     * @param \DateTime $dtGeracao
     * @return Boleto
     */
    public function setDtGeracao($dtGeracao)
    {
        $this->dtGeracao = $dtGeracao;
    
        return $this;
    }

    /**
     * Get dtGeracao
     *
     * @return \DateTime 
     */
    public function getDtGeracao()
    {
        return $this->dtGeracao;
    }

    /**
     * Set arquivo
     *
     * @param string $arquivo
     * @return Boleto
     */
    public function setArquivo($arquivo)
    {
        $this->arquivo = $arquivo;
    
        return $this;
    }

    /**
     * Get arquivo
     *
     * @return string 
     */
    public function getArquivo()
    {
        return $this->arquivo;
    }

    /**
     * Set situacao
     *
     * @param string $situacao
     * @return Boleto
     */
    public function setSituacao($situacao)
    {
        $this->situacao = $situacao;
    
        return $this;
    }

    /**
     * Get situacao
     *
     * @return string 
     */
    public function getSituacao()
    {
        return $this->situacao;
    }

    /**
     * Set nossoNumero
     *
     * @param string $nossoNumero
     * @return Boleto
     */
    public function setNossoNumero($nossoNumero)
    {
        $this->nossoNumero = $nossoNumero;
    
        return $this;
    }

    /**
     * Get nossoNumero
     *
     * @return string 
     */
    public function getNossoNumero()
    {
        return $this->nossoNumero;
    }

    /**
     * Set linhaDigitavel
     *
     * @param string $linhaDigitavel
     * @return Boleto
     */
    public function setLinhaDigitavel($linhaDigitavel)
    {
        $this->linhaDigitavel = $linhaDigitavel;
    
        return $this;
    }

    /**
     * Get linhaDigitavel
     *
     * @return string 
     */
    public function getLinhaDigitavel()
    {
        return $this->linhaDigitavel;
    }
    
    public function getConfigBoleto() {
        return $this->configBoleto;
    }

    public function setConfigBoleto($configBoleto) {
        $this->configBoleto = $configBoleto;
    }

    public function getCobrancaContrato() {
        return $this->cobrancaContrato;
    }

    public function setCobrancaContrato($cobrancaContrato) {
        $this->cobrancaContrato = $cobrancaContrato;
    }
    
    public function getDtEnvio() {
        return $this->dtEnvio;
    }

    public function setDtEnvio($dtEnvio) {
        $this->dtEnvio = $dtEnvio;
    }

}
